home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 11 / Cream of the Crop 11-1.iso / windows / boyer04.zip / BOYER.H < prev    next >
C/C++ Source or Header  |  1996-01-15  |  2KB  |  54 lines

  1. /*-----------------------------------------------------------------------------
  2.     file:   boyer.h
  3.     desc:   Boyer-Moore text search algorithm (Windows version) header
  4.     by:     Patrick Ko
  5.     date:   6 Mar 91 - born
  6.     revi:   4 Apr 94 - port Windows 3.1
  7.             13 Jan 95 - v0.4
  8.     note:   use huge pointers to cater for big contiguous memory
  9. -----------------------------------------------------------------------------*/
  10. #ifndef _INC_BOYER
  11. #define _INC_BOYER
  12.  
  13. /* store the pattern, pattern length and skip table for 256 alphabets */
  14. /* maximum pattern length (MAXPAT) cannot be larger than 65535 */
  15.  
  16. #define MAXPAT  256
  17.  
  18. #ifndef HPSTR
  19. typedef BYTE _huge *    HPSTR;
  20. #endif
  21.  
  22. typedef struct {
  23.         unsigned int plen;
  24.         char p[MAXPAT + 1];
  25.         char pIC[MAXPAT + 1];
  26.         unsigned int skip[256];
  27.         unsigned int skipb[256];
  28.         unsigned int skipIC[256];
  29.         unsigned int skipbIC[256];
  30. } FINDSTRUCT;
  31.  
  32. typedef FINDSTRUCT FAR * LPFIND;
  33. typedef HANDLE HFIND;
  34.         
  35. /* boyer.c prototypes */
  36.  
  37. #ifdef BOYERDLL
  38.         HFIND FAR PASCAL SetFindPattern( LPSTR lpszPattern );
  39.         void FAR PASCAL FreeFindPattern( HFIND hfind );
  40.         LPSTR FAR PASCAL Find( HFIND hfind, LPSTR s, LONG slen );
  41.         LPSTR FAR PASCAL FindBackward( HFIND hfind, LPSTR s, LONG slen );
  42.         LPSTR FAR PASCAL FindIC( HFIND hfind, LPSTR s, LONG slen );
  43.         LPSTR FAR PASCAL FindBackwardIC( HFIND hfind, LPSTR s, LONG slen );
  44. #else
  45.         HFIND SetFindPattern( LPSTR lpszPattern );
  46.         void FreeFindPattern( HFIND hfind );
  47.         LPSTR Find( HFIND hfind, LPSTR s, LONG slen );
  48.         LPSTR FindBackward( HFIND hfind, LPSTR s, LONG slen );
  49.         LPSTR FindIC( HFIND hfind, LPSTR s, LONG slen );
  50.         LPSTR FindBackwardIC( HFIND hfind, LPSTR s, LONG slen );
  51. #endif
  52.  
  53. #endif
  54.